5
תגובות
שלום, אני עובד כרגע על Framework משלי, הכל טוב ויפה אבל משהו ששמתי לב הוא שאם אני משתמש ב-Components של ה-Framework ואז מנסה לשנות לו פרטים, ה-Framework דורס את הקובץ שאיתו ערכתי את ההגדרות, שמתי את קובץ ההגדרות אחרי ה Framework, האם זאת הדרך הנכונה?

5 תשובות

avatar ענה OrelBeY ב 17 לינואר 2014 #

קודם כול, תנסה ותראה. (:
אנחנו לא יודעים כלום על הפריימו'ורק שלך, אז קשה להבין ככה. אבל מה זה למשל, "שמתי את קובץ ההגדרות אחרי הפריימו'ורק"? קשה לי להבין. תוכל אולי לומר את זה קצת יותר ברור?

avatar ענה yotamN ב 17 לינואר 2014 #

ככה נמצא ה Header:

<link rel="stylesheet" href="../ynco/css/ynco-main.css" />
    <link rel="stylesheet" href="../ynco/css/ynco-icons.css" />
    <link rel="icon" type="image/png" href="../img/logo-hover.png" />
    <link rel="stylesheet" href="style/download.css" />


ודברים שהגדרתי ב download.css נרמסים

avatar ענה OrelBeY ב 17 לינואר 2014 #

אה. התשובה היא - לא. זה לא עובד.

זוכר ש-CSS בשורה (inline) דורס CSS מוטמע (embedded), שדורס בתורו CSS ממקור חיצוני (external)? ובכן, זה לא בדיוק ככה. וקובץ שקושר אחרי אחד אחר - לא בהכרח ייקח עדיפות עליו. זה תלוי בסלקטורים. (רק במקרה שייחודיות הסלקטורים זהה - הקובץ האחרון ייקח עדיפות.) אבל אם נניח יהיה #some-id בקובץ הראשון ו-p בקובץ השני, ו-some-id זה id של p - הקובץ השני לא ייקח עדיפות במקרה הזה, כי הסלקטור בקובץ הראשון ייחודי יותר.

לקריאה יסודית:
Understanding Style Precedence in CSS: Specificity, Inheritance, and the Cascade ב-Vanseo Design
Specifics on CSS Specificity ב-CSS Tricks

עכשיו, לאחר שהערת את תשומת ליבי לנושא החשוב הזה, נזכרתי שתכננתי לכתוב או לתרגם על זה מאמר מפורט. אולי בקרוב...

avatar ענה yotamN ב 18 לינואר 2014 #

משהו כזה

input[type="text"]

עולה לי על הגדרת Class

avatar ענה OrelBeY ב 18 לינואר 2014 #

עשיתי את החיפוש בשבילך והבאתי לך שני קישורים. עכשיו תקרא. כי תשובה ספציפית למקרה הזה לא בהכרח תעזור לך בעתיד.

בכל מקרה, יש כאן גם את ה-Attribute Selector וגם את שם האלמנט. אני מניח בהגדרת הסלקטור של המחלקה יש רק את שם המחלקה*. אם תוסיף לשם גם את שם האלמנט (אלא אם כן זה מיועד להרבה סוגים של אלמנטים, ואז זו בעיה), רמת הייחודיות (Specificity) של שני הסלקטורים תהיה זהה, ובמקרה כזה - הסלקטור האחרון (ה-Class Selector שלך) ייקח עדיפות.

* רמת הייחודיות הולכת כך: (הרשיתי לעצמי להמיר את זה למספרים במקום לרשימת משתנים. כשתקרא תבין. :-) )
Element, Pseudo Element = 1
Class, Pseudo class, Attribute = 10
ID = 100
ו-Inline Style מנצח את כולם.
(בהמשך למה שכתבתי מקודם - זה לא בדיוק הולך לפי נקודות. תקרא על זה במאמרים שקישרתי אותך אליהם, ואני מבטיח שאני אשתדל לכתוב על זה מאמר מקיף בעברית כשיצא לי.)

הצהרת !important מעבירה את הסלקטור לשלב הבא, כך שאם אין סלקטור אחר עם רמת ייחודיות גבוהה שלו שהוגדר כ-!important, או שיש כאלה עם רמת ייחודיות זהה לו (שהוגדרו כ-!important) והוא האחרון מביניהם - הוא לוקח.